package com.atguigu.tingshu.album.service;

import com.atguigu.tingshu.model.album.TrackInfo;
import com.atguigu.tingshu.query.album.TrackInfoQuery;
import com.atguigu.tingshu.vo.album.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

public interface TrackInfoService extends IService<TrackInfo> {

    //上传声音
    UploadTrackVo uploadTrack(MultipartFile file);

    //    新增声音
    void saveTrackInfo(TrackInfoVo trackInfoVo);

    // 获取当前用户声音分页列表
    IPage<TrackListVo> findUserTrackPage(Long page, Long limit, TrackInfoQuery trackInfoQuery);

    //    根据id查询声音信息
    TrackInfo getTrackInfoById(Long id);

    // 修改声音信息
    void updateTrackInfo(Long id, TrackInfoVo trackInfoVo);

    //根据id删除声音信息
    void deleteTrackInfo(Long id);
    //获取专辑声音分页列表
    IPage<AlbumTrackListVo> findAlbumTrackPage(Long albumId, Long limit, Long page);


    void trackStatUpdate(TrackStatMqVo trackStatMqVo);
    //获取声音统计信息
    TrackStatVo getTrackStatVo(Long trackId);
    //获取用户声音分集购买支付列表
    List<TrackPayVo> findUserTrackPaidList(Long trackId);

    List<TrackInfo> findPaidTrackInfoList(Long trackId, Integer trackCount);
}
